package com.tencent.wxcloudrun.config;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 此注解会检测当前中是否有openID信息，然后再生成锁。
 * 如果有的话，会将这个值拼接到preFix后面然后作为锁的key，如果没有openId，则key就是prefix本身。
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RedisLock {

    /**
     * 锁名称的前缀
     */
    String prefix() default "";

    /**
     * 线程等待获取锁的最大时间（单位：毫秒），默认1秒
     */
    int waitTime() default 1000;

    /**
     * 锁的有效期（单位：毫秒），默认30秒
     */
    long expire() default 30000;
}

